home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Rozne / HTTrack 3.40-2 / httrack-3.40-2.exe / {app} / src / mmsrip / mms.h < prev    next >
C/C++ Source or Header  |  2006-01-23  |  3KB  |  130 lines

  1. /*
  2.  * $RCSfile: mms.h,v $
  3.  * $Date: 2006/01/23 20:30:43 $ - $Revision: 1.17 $
  4.  *
  5.  * This file is distributed as a part of MMSRIP ( MMS Ripper ).
  6.  * Copyright (c) 2005-2006 Nicolas BENOIT
  7.  *
  8.  * It is highly based on the work of SDP Multimedia and Major MMS.
  9.  * They deserve all the credits for it.
  10.  *
  11.  * This program is free software; you can redistribute it and/or modify it
  12.  * under the terms of the GNU General Public License as published by the
  13.  * Free Software Foundation; either version 2, or (at your option) any
  14.  * later version.
  15.  *
  16.  * This program is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this program; if not, write to the Free Software
  23.  * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  24.  *
  25.  */
  26.  
  27.  
  28. #ifndef __MMS_H__
  29. #define __MMS_H__
  30.  
  31. #ifdef _WIN32
  32. typedef signed long int ssize_t;
  33. #define bcopy(s, d, l) memcpy(d, s, l)
  34. #include <assert.h>
  35. #define close closesocket
  36. #define read(soc, data, len) recv(soc, data, len, 0)
  37. #define write(soc, data, len) send(soc, data, len, 0)
  38. #define SHUT_RDWR SD_BOTH
  39. #endif
  40.  
  41. #if defined(__CYGWIN__) || defined(_WIN32)
  42. typedef unsigned char uint8_t;
  43. #ifndef __uint32_t_defined
  44. #define __uint32_t_defined
  45. typedef unsigned int uint32_t;
  46. #endif
  47. typedef unsigned long long int uint64_t;
  48. #else
  49. #if defined(SOLARIS) || defined(sun)
  50. #include <inttypes.h>
  51. #else
  52. #include <stdint.h>
  53. #endif
  54. #endif
  55.  
  56. #define MMS_SERVER  0
  57. #define MMS_CLIENT  1
  58.  
  59. #define MMS_NO_LIVE 0
  60. #define MMS_LIVE    1
  61.  
  62. #define MMS_WMV     0
  63. #define MMS_ASF     1
  64.  
  65. #define MMS_TRICK_DISABLED 0
  66. #define MMS_TRICK_ENABLED  1
  67.  
  68. #define MMS_CMD_INVALID            -1
  69. #define MMS_CMD_HELLO             0x01
  70. #define MMS_CMD_PROTOCOL_SELECT   0x02
  71. #define MMS_CMD_FILE_REQUEST      0x05
  72. #define MMS_CMD_READY_TO_STREAM   0x05
  73. #define MMS_CMD_STREAM_INFOS      0x06
  74. #define MMS_CMD_START_PACKET      0x07
  75. #define MMS_CMD_STOP_STREAM       0x09
  76. #define MMS_CMD_BYE_BYE           0x0D
  77. #define MMS_CMD_HEADER_DATA       0x11
  78. #define MMS_CMD_HEADER_REQUEST    0x15
  79. #define MMS_CMD_NET_TESTING       0x15
  80. #define MMS_CMD_PING              0x1B
  81. #define MMS_CMD_PONG              0x1B
  82. #define MMS_CMD_END_OF_STREAM     0x1E
  83. #define MMS_CMD_STREAM_SELECT_ACK 0x21
  84. #define MMS_CMD_STREAM_SELECT     0x33
  85.  
  86. #define MMS_RET_SUCCESS           0
  87. #define MMS_RET_ERROR            -1
  88. #define MMS_RET_NO_AUTH          -2
  89. #define MMS_RET_ACKED            -3
  90.  
  91.  
  92. #define MMS_BUF_SIZE 102400
  93.  
  94. typedef struct
  95. {
  96.   uint8_t buf[MMS_BUF_SIZE];
  97.   int     num_bytes;
  98. } MMS_PACKET ;
  99.  
  100.  
  101. typedef struct
  102. {
  103.   char *host;
  104.   char *path;
  105.   int socket;
  106.   FILE *out;
  107.   FILE *stddebug;
  108.   ssize_t media_packet_len;
  109.   uint64_t expected_file_size;
  110.   int is_live;
  111.   int stream_type;
  112.   int seq_num;
  113.   int num_stream_ids;
  114.   int stream_ids[20];
  115.   int quiet;
  116.   int trick;
  117. } MMS ;
  118.  
  119.  
  120. MMS *   mms_create ( const char *, FILE *, FILE *, const int, const int );
  121. int     mms_connect ( MMS* );
  122. int     mms_handshake ( MMS * );
  123. ssize_t mms_write_stream_header ( MMS * );
  124. int     mms_begin_rip ( MMS * );
  125. ssize_t mms_write_stream_data ( MMS * );
  126. void    mms_disconnect ( MMS * );
  127. void    mms_destroy ( MMS * );
  128.  
  129. #endif
  130.